

virtual void MeasureItem( LPMEASUREITEMSTRUCT lpMeasureItemStruct );
Параметры
lpMeasureItemStruct
Длинный указатель на структуру MEASUREITEMSTRUCT.
Замечания
Вызванный рамкой, когда список владельцем создан со стилем отрисовки владельцем.
По умолчанию, эта функция не делает ничего. Перегрузите эту функцию и внесите структуру MEASUREITEMSTRUCT, чтобы сообщить Windows относительно размерностей списка. Если список создан с LBS_OWNERDRAWVARIABLE стилем, рамка вызывает эту функцию для каждого элемента в списке. Иначе, это вызван только один раз.
Пример
// CMyListBox - мой выведенный владельцем список, полученный из CListBox. Этот
// пример измеряет элемент и устанавливает высоту элемента вдвое
// вертикальной протяженность текста. Управление списка было создано
// следующим кодом:
// pmyListBox->Create(
// WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
// LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE,
// myRect, pParentWnd, 1);
//
void CMyListBox::MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{
ASSERT(lpMeasureItemStruct->CtlType == ODT_LISTBOX);
LPCTSTR lpszText = (LPCTSTR) lpMeasureItemStruct->itemData;
ASSERT(lpszText != NULL);
CSize sz;
CDC* pDC = GetDC();
sz = pDC->GetTextExtent(lpszText);
ReleaseDC(pDC);
lpMeasureItemStruct->itemHeight = 2*sz.cy;
}

